chore: version packages#1264
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
bef2042 to
8186ca1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@objectstack/client@4.2.0
Minor Changes
2869891: feat: Optimistic Concurrency Control (OCC) via
If-MatchUpdate and Delete requests now accept an optional version token. When supplied,
the protocol compares it against the record's current
updated_at(orversioncolumn when available) and rejects with
409 CONCURRENT_UPDATEon mismatch,preventing silent overwrites when two clients edit the same record.
Wire formats (opt-in, all server- and client-backward-compatible):
PATCH /data/{object}/{id}— supportsIf-Match: "<token>"headeror
expectedVersion: "<token>"body field (body wins when both present).DELETE /data/{object}/{id}— supportsIf-Matchheader or?expectedVersion=...query param.Conflict response:
409 { error, code: 'CONCURRENT_UPDATE', currentVersion, currentRecord }so the client can offer Reload / Overwrite / Cancel UX.Behaviour
Missing/empty version → no check (legacy callers unaffected).
Record not found during the version probe → no check; the downstream write
produces a normal
404.Object has no
updated_atcolumn → no check (explicit opt-out for objectswithout timestamps).
Quoted RFC-7232 tokens (
"…") are accepted and unquoted before comparison.Client
client.data.update(resource, id, data, { ifMatch })andclient.data.delete(resource, id, { ifMatch })now forward the token as anIf-Matchheader.Application-level CAS (findOne + compare in protocol.ts) is used in this slice
to avoid touching every storage driver. A small TOCTOU window remains; for the
B2B record-editing latencies this protects against, it is more than sufficient.
Drivers may later be upgraded to atomic
WHERE id=? AND updated_at=?writesfor true CAS without changing the public API.
Tests: 7 new cases in
protocol-data.test.tscover opt-in, match, mismatch,quote-stripping, no-timestamps, empty-token, and the delete path.
Patch Changes
@objectstack/objectql@4.2.0
Minor Changes
2869891: feat: Optimistic Concurrency Control (OCC) via
If-MatchUpdate and Delete requests now accept an optional version token. When supplied,
the protocol compares it against the record's current
updated_at(orversioncolumn when available) and rejects with
409 CONCURRENT_UPDATEon mismatch,preventing silent overwrites when two clients edit the same record.
Wire formats (opt-in, all server- and client-backward-compatible):
PATCH /data/{object}/{id}— supportsIf-Match: "<token>"headeror
expectedVersion: "<token>"body field (body wins when both present).DELETE /data/{object}/{id}— supportsIf-Matchheader or?expectedVersion=...query param.Conflict response:
409 { error, code: 'CONCURRENT_UPDATE', currentVersion, currentRecord }so the client can offer Reload / Overwrite / Cancel UX.Behaviour
Missing/empty version → no check (legacy callers unaffected).
Record not found during the version probe → no check; the downstream write
produces a normal
404.Object has no
updated_atcolumn → no check (explicit opt-out for objectswithout timestamps).
Quoted RFC-7232 tokens (
"…") are accepted and unquoted before comparison.Client
client.data.update(resource, id, data, { ifMatch })andclient.data.delete(resource, id, { ifMatch })now forward the token as anIf-Matchheader.Application-level CAS (findOne + compare in protocol.ts) is used in this slice
to avoid touching every storage driver. A small TOCTOU window remains; for the
B2B record-editing latencies this protects against, it is more than sufficient.
Drivers may later be upgraded to atomic
WHERE id=? AND updated_at=?writesfor true CAS without changing the public API.
Tests: 7 new cases in
protocol-data.test.tscover opt-in, match, mismatch,quote-stripping, no-timestamps, empty-token, and the delete path.
Patch Changes
@objectstack/rest@4.2.0
Minor Changes
2869891: feat: Optimistic Concurrency Control (OCC) via
If-MatchUpdate and Delete requests now accept an optional version token. When supplied,
the protocol compares it against the record's current
updated_at(orversioncolumn when available) and rejects with
409 CONCURRENT_UPDATEon mismatch,preventing silent overwrites when two clients edit the same record.
Wire formats (opt-in, all server- and client-backward-compatible):
PATCH /data/{object}/{id}— supportsIf-Match: "<token>"headeror
expectedVersion: "<token>"body field (body wins when both present).DELETE /data/{object}/{id}— supportsIf-Matchheader or?expectedVersion=...query param.Conflict response:
409 { error, code: 'CONCURRENT_UPDATE', currentVersion, currentRecord }so the client can offer Reload / Overwrite / Cancel UX.Behaviour
Missing/empty version → no check (legacy callers unaffected).
Record not found during the version probe → no check; the downstream write
produces a normal
404.Object has no
updated_atcolumn → no check (explicit opt-out for objectswithout timestamps).
Quoted RFC-7232 tokens (
"…") are accepted and unquoted before comparison.Client
client.data.update(resource, id, data, { ifMatch })andclient.data.delete(resource, id, { ifMatch })now forward the token as anIf-Matchheader.Application-level CAS (findOne + compare in protocol.ts) is used in this slice
to avoid touching every storage driver. A small TOCTOU window remains; for the
B2B record-editing latencies this protects against, it is more than sufficient.
Drivers may later be upgraded to atomic
WHERE id=? AND updated_at=?writesfor true CAS without changing the public API.
Tests: 7 new cases in
protocol-data.test.tscover opt-in, match, mismatch,quote-stripping, no-timestamps, empty-token, and the delete path.
Patch Changes
@objectstack/spec@4.2.0
Minor Changes
2869891: feat: Optimistic Concurrency Control (OCC) via
If-MatchUpdate and Delete requests now accept an optional version token. When supplied,
the protocol compares it against the record's current
updated_at(orversioncolumn when available) and rejects with
409 CONCURRENT_UPDATEon mismatch,preventing silent overwrites when two clients edit the same record.
Wire formats (opt-in, all server- and client-backward-compatible):
PATCH /data/{object}/{id}— supportsIf-Match: "<token>"headeror
expectedVersion: "<token>"body field (body wins when both present).DELETE /data/{object}/{id}— supportsIf-Matchheader or?expectedVersion=...query param.Conflict response:
409 { error, code: 'CONCURRENT_UPDATE', currentVersion, currentRecord }so the client can offer Reload / Overwrite / Cancel UX.Behaviour
Missing/empty version → no check (legacy callers unaffected).
Record not found during the version probe → no check; the downstream write
produces a normal
404.Object has no
updated_atcolumn → no check (explicit opt-out for objectswithout timestamps).
Quoted RFC-7232 tokens (
"…") are accepted and unquoted before comparison.Client
client.data.update(resource, id, data, { ifMatch })andclient.data.delete(resource, id, { ifMatch })now forward the token as anIf-Matchheader.Application-level CAS (findOne + compare in protocol.ts) is used in this slice
to avoid touching every storage driver. A small TOCTOU window remains; for the
B2B record-editing latencies this protects against, it is more than sufficient.
Drivers may later be upgraded to atomic
WHERE id=? AND updated_at=?writesfor true CAS without changing the public API.
Tests: 7 new cases in
protocol-data.test.tscover opt-in, match, mismatch,quote-stripping, no-timestamps, empty-token, and the delete path.
@objectstack/studio@4.2.0
Patch Changes
3a99239: Metadata HMR via SSE — close the agent-edits → preview-refresh loop.
@objectstack/metadata: register/api/v1/dev/metadata-eventsSSE endpoint unconditionally;add
POSTtrigger that reloads the artifact and broadcasts areloadevent to all listeners.@objectstack/cli(os dev): chokidar-based watch onobjectstack.config.tsandsrc/;debounced recompile +
POSTto the HMR endpoint so the server reloads without restart.@objectstack/studio:useMetadataHmrprovider opens anEventSource, exposes a versioncounter; previews include it in their query deps, and a top-bar badge surfaces connection
state and event counts for diagnostics.
bab9bb8: fix
14f5cde: Studio: wire form previews to the real running backend instead of the
hand-rolled disabled-input mockup.
LiveFormPreviewcomponent renders<ObjectForm>from@object-ui/plugin-formagainst the live
DataSource, with a Create / Edit / Read-only mode toggle and arecord picker (top 10 most-recent records via
dataSource.find) for Edit mode.LivePreviewStatusBarfooter surfaces a pulsing LIVE indicator withthe backend base URL and bound object so it is obvious previews are real, not
mocked.
LiveFormPreviewand correctly unwrapsthe
{ type, items }envelope returned byclient.meta.getItems('view')(previously the
.mapcall silently threw, leaving the tab showing"No forms yet" even when ten forms existed).
MetadataPreviewroutes both single-spec form views and multi-view docsthrough
LiveFormPreview; non-form previews now show the LIVE status bar.(where
objectis nested underlist.data.object/form.data.object).FormPreviewcomponent.f289927: Studio: fix Object Hub Views / Forms / Hooks tabs all showing
(0).The
$package.objects.$nameroute was passing the URL slug (e.g.crm)as
packageIdtoclient.meta.getItems('view', { packageId }), but themetadata server filter requires the full package id (e.g.
com.example.crm). The server-side filter never matched, so the tabssilently fell back to empty arrays.
Aligned the route with
$package.metadata.$type.$name: resolve the slug viausePackages(packageId)and passselectedPackage.manifest.idto the API(falling back to the raw slug until the package list loads).
cefcf64: Live preview for view/page/dashboard/report metadata.
Adds a built-in
objectstack.view-previewplugin that registers aLive Previewviewer (priority 50, beating the default JSON inspector)for
view,page,report, anddashboardtypes. Opening any ofthese from the Views & Apps list now renders a real
@object-uipreview (grid / kanban / calendar / form / detail) instead of a JSON
tree. HMR is wired — source edits re-fetch the spec and remount the
preview without a full page reload.
Updated dependencies [3a99239]
Updated dependencies [2869891]
@objectstack/hono@4.2.0
Patch Changes
@objectstack/cli@4.2.0
Patch Changes
3a99239: Metadata HMR via SSE — close the agent-edits → preview-refresh loop.
@objectstack/metadata: register/api/v1/dev/metadata-eventsSSE endpoint unconditionally;add
POSTtrigger that reloads the artifact and broadcasts areloadevent to all listeners.@objectstack/cli(os dev): chokidar-based watch onobjectstack.config.tsandsrc/;debounced recompile +
POSTto the HMR endpoint so the server reloads without restart.@objectstack/studio:useMetadataHmrprovider opens anEventSource, exposes a versioncounter; previews include it in their query deps, and a top-bar badge surfaces connection
state and event counts for diagnostics.
Updated dependencies [2869891]
@objectstack/client-react@4.2.0
Patch Changes
@objectstack/core@4.2.0
Patch Changes
@objectstack/formula@4.2.0
Patch Changes
@objectstack/metadata@4.2.0
Patch Changes
3a99239: Metadata HMR via SSE — close the agent-edits → preview-refresh loop.
@objectstack/metadata: register/api/v1/dev/metadata-eventsSSE endpoint unconditionally;add
POSTtrigger that reloads the artifact and broadcasts areloadevent to all listeners.@objectstack/cli(os dev): chokidar-based watch onobjectstack.config.tsandsrc/;debounced recompile +
POSTto the HMR endpoint so the server reloads without restart.@objectstack/studio:useMetadataHmrprovider opens anEventSource, exposes a versioncounter; previews include it in their query deps, and a top-bar badge surfaces connection
state and event counts for diagnostics.
Updated dependencies [2869891]
@objectstack/platform-objects@4.2.0
Patch Changes
@objectstack/driver-memory@4.2.0
Patch Changes
@objectstack/driver-mongodb@4.2.0
Patch Changes
@objectstack/driver-sql@4.2.0
Patch Changes
@objectstack/driver-turso@4.2.0
Patch Changes
@objectstack/plugin-approvals@4.2.0
Patch Changes
@objectstack/plugin-audit@4.2.0
Patch Changes
@objectstack/plugin-auth@4.2.0
Patch Changes
@objectstack/plugin-dev@4.2.0
Patch Changes
@objectstack/plugin-email@4.2.0
Patch Changes
@objectstack/plugin-hono-server@4.2.0
Patch Changes
@objectstack/plugin-mcp-server@4.2.0
Patch Changes
@objectstack/plugin-msw@4.2.0
Patch Changes
@objectstack/plugin-reports@4.2.0
Patch Changes
@objectstack/plugin-security@4.2.0
Patch Changes
@objectstack/plugin-sharing@4.2.0
Patch Changes
@objectstack/plugin-webhooks@4.2.0
Patch Changes
@objectstack/runtime@4.2.0
Patch Changes
@objectstack/service-ai@4.2.0
Patch Changes
@objectstack/service-analytics@4.2.0
Patch Changes
@objectstack/service-automation@4.2.0
Patch Changes
@objectstack/service-cache@4.2.0
Patch Changes
@objectstack/service-feed@4.2.0
Patch Changes
@objectstack/service-i18n@4.2.0
Patch Changes
@objectstack/service-job@4.2.0
Patch Changes
@objectstack/service-package@4.2.0
Patch Changes
@objectstack/service-queue@4.2.0
Patch Changes
@objectstack/service-realtime@4.2.0
Patch Changes
@objectstack/service-settings@4.2.0
Patch Changes
@objectstack/service-storage@4.2.0
Patch Changes
@objectstack/types@4.2.0
Patch Changes
@objectstack/express@4.2.0
@objectstack/fastify@4.2.0
@objectstack/nestjs@4.2.0
@objectstack/nextjs@4.2.0
@objectstack/nuxt@4.2.0
@objectstack/sveltekit@4.2.0
create-objectstack@4.2.0
objectstack-vscode@4.2.0
@objectstack/console@4.2.0
Minor Changes
@objectstack/account@4.2.0
Patch Changes
@objectstack/example-crm@4.0.8
Patch Changes
@example/app-todo@4.0.8
Patch Changes
@objectstack/docs@4.2.0